In some printing architectures, measures such as removing overlapping objects, combining complex objects, and flattening compositing stacks are highly desirable steps to take. In some cases, some components in a printing architecture may only partially support a drawing interface over which graphical objects are sent, and so such steps are necessary to successfully print any print job. In other cases, such steps are desirable to improve the performance of a subsequent rasterisation processing step.
An object-based graphics system known as a Raster Image Processor (RIP) can generate an intermediate graphic representation of a page from a PDL (page description language) document, such as a PDF or PostScript document. The intermediate graphic representation represents the same page as the original PDL document, but in a format more suitable for rendering by a printer engine onto a print media, such as paper. One such intermediate graphic representation format is an edge-based representation, where each region is encoded only by an activating edge and colour data associated with the activating edge. This format is efficient for rasterising the page into an image as all overlapping regions have been resolved. This format is therefore also highly suited to processing steps often performed by a rasterisation module, such as combining complex objects and flattening compositing stacks.
Thus, one way of performing processing steps such as resolving overlaps between objects, combining complex objects, and flattening compositing stacks is to use a RIP system to generate an edge-based representation. One drawback of this approach is that the edge-based representation does not explicitly store the full boundaries of each non-overlapping object. This can hinder subsequent processing steps which rely on knowing the boundaries of each region.
One method of determining the boundaries of each region in an edge-based representation is to rasterise the edge-based representation, and then apply a pixel-wise outline extractor algorithm in order to detect and extract each region. However, this approach is cumbersome and slow as it involves rasterising the entire edge-based representation format into an image first, and then detecting the boundary of the regions by inspecting the image on a pixel-by-pixel basis.
Another method converts a PDL page to an intermediate non-overlapping object representation. However, this method cannot easily be used with a RIP system which efficiently performs processing such as combining complex objects and flattening compositing stacks, because the output of the RIP system is an edge-based representation, not a PDL page representation.